package com.raymond.cmpp.msg.response;

import com.raymond.client.msg.response.BaseResponseMessage;
import com.raymond.cmpp.enums.CommandIdType;

/**
 * 连接响应
 *
 * @author :  raymond
 * @version :  V1.0
 * @date :  2021-08-05 15:24
 */
public class ConnectResponseMessage extends BaseResponseMessage {
    /**
     * 状态
     * 0：正确
     * 1：消息结构错
     *  2：非法源地址
     *  3：认证错
     *  4：版本太高
     *   5~ ：其他错误
     */
    private long status = 3;
    /**
     * ISMG认证码，用于鉴别ISMG。
     * 其值通过单向MD5 hash计算得出，表示如下：
     * AuthenticatorISMG =MD5（Status+AuthenticatorSource+shared secret），Shared secret 由中国移动与源地址实体事先商定，AuthenticatorSource为源地址实体发送给ISMG的对应消息CMPP_Connect中的值。
     *  认证出错时，此项为空。
     */
    private String authenticatorIsmg;
    /**
     * 服务器支持的最高版本号，对于3.0的版本，高4bit为3，低4位为0
     */
    private short version = 0x30;

    public ConnectResponseMessage(int sequenceId) {
        super(sequenceId);
    }

    @Override
    public int getCommandId() {
        return CommandIdType.CONNECT_RESPONSE.getCommandId();
    }

    public long getStatus() {
        return status;
    }

    public void setStatus(long status) {
        this.status = status;
    }

    public String getAuthenticatorIsmg() {
        return authenticatorIsmg;
    }

    public void setAuthenticatorIsmg(String authenticatorIsmg) {
        this.authenticatorIsmg = authenticatorIsmg;
    }

    public short getVersion() {
        return version;
    }

    public void setVersion(short version) {
        this.version = version;
    }
}
